home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / awt / MediaTracker.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.4 KB  |  226 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class MediaTracker implements Serializable {
  6.    Component target;
  7.    MediaEntry head;
  8.    public static final int LOADING = 1;
  9.    public static final int ABORTED = 2;
  10.    public static final int ERRORED = 4;
  11.    public static final int COMPLETE = 8;
  12.    static final int DONE = 14;
  13.  
  14.    public MediaTracker(Component var1) {
  15.       this.target = var1;
  16.    }
  17.  
  18.    public void addImage(Image var1, int var2) {
  19.       this.addImage(var1, var2, -1, -1);
  20.    }
  21.  
  22.    public synchronized void addImage(Image var1, int var2, int var3, int var4) {
  23.       this.head = MediaEntry.insert(this.head, new ImageMediaEntry(this, var1, var2, var3, var4));
  24.    }
  25.  
  26.    public boolean checkAll() {
  27.       return this.checkAll(false);
  28.    }
  29.  
  30.    public synchronized boolean checkAll(boolean var1) {
  31.       MediaEntry var2 = this.head;
  32.  
  33.       boolean var3;
  34.       for(var3 = true; var2 != null; var2 = var2.next) {
  35.          if ((var2.getStatus(var1) & 14) == 0) {
  36.             var3 = false;
  37.          }
  38.       }
  39.  
  40.       return var3;
  41.    }
  42.  
  43.    public synchronized boolean isErrorAny() {
  44.       for(MediaEntry var1 = this.head; var1 != null; var1 = var1.next) {
  45.          if ((var1.getStatus(false) & 4) != 0) {
  46.             return true;
  47.          }
  48.       }
  49.  
  50.       return false;
  51.    }
  52.  
  53.    public synchronized Object[] getErrorsAny() {
  54.       MediaEntry var1 = this.head;
  55.  
  56.       int var2;
  57.       for(var2 = 0; var1 != null; var1 = var1.next) {
  58.          if ((var1.getStatus(false) & 4) != 0) {
  59.             ++var2;
  60.          }
  61.       }
  62.  
  63.       if (var2 == 0) {
  64.          return null;
  65.       } else {
  66.          Object[] var3 = new Object[var2];
  67.          var1 = this.head;
  68.  
  69.          for(int var5 = 0; var1 != null; var1 = var1.next) {
  70.             if ((var1.getStatus(false) & 4) != 0) {
  71.                var3[var5++] = var1.getMedia();
  72.             }
  73.          }
  74.  
  75.          return var3;
  76.       }
  77.    }
  78.  
  79.    public void waitForAll() throws InterruptedException {
  80.       this.waitForAll(0L);
  81.    }
  82.  
  83.    public synchronized boolean waitForAll(long var1) throws InterruptedException {
  84.       long var3 = System.currentTimeMillis() + var1;
  85.       boolean var5 = true;
  86.  
  87.       while(true) {
  88.          int var6 = this.statusAll(var5);
  89.          if ((var6 & 1) == 0) {
  90.             if (var6 != 8) {
  91.                return false;
  92.             }
  93.  
  94.             return true;
  95.          }
  96.  
  97.          var5 = false;
  98.          long var7;
  99.          if (var1 == 0L) {
  100.             var7 = 0L;
  101.          } else {
  102.             var7 = var3 - System.currentTimeMillis();
  103.             if (var7 <= 0L) {
  104.                return false;
  105.             }
  106.          }
  107.  
  108.          this.wait(var7);
  109.       }
  110.    }
  111.  
  112.    public int statusAll(boolean var1) {
  113.       MediaEntry var2 = this.head;
  114.  
  115.       int var3;
  116.       for(var3 = 0; var2 != null; var2 = var2.next) {
  117.          var3 |= var2.getStatus(var1);
  118.       }
  119.  
  120.       return var3;
  121.    }
  122.  
  123.    public boolean checkID(int var1) {
  124.       return this.checkID(var1, false);
  125.    }
  126.  
  127.    public synchronized boolean checkID(int var1, boolean var2) {
  128.       MediaEntry var3 = this.head;
  129.  
  130.       boolean var4;
  131.       for(var4 = true; var3 != null; var3 = var3.next) {
  132.          if (var3.getID() == var1 && (var3.getStatus(var2) & 14) == 0) {
  133.             var4 = false;
  134.          }
  135.       }
  136.  
  137.       return var4;
  138.    }
  139.  
  140.    public synchronized boolean isErrorID(int var1) {
  141.       for(MediaEntry var2 = this.head; var2 != null; var2 = var2.next) {
  142.          if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  143.             return true;
  144.          }
  145.       }
  146.  
  147.       return false;
  148.    }
  149.  
  150.    public synchronized Object[] getErrorsID(int var1) {
  151.       MediaEntry var2 = this.head;
  152.  
  153.       int var3;
  154.       for(var3 = 0; var2 != null; var2 = var2.next) {
  155.          if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  156.             ++var3;
  157.          }
  158.       }
  159.  
  160.       if (var3 == 0) {
  161.          return null;
  162.       } else {
  163.          Object[] var4 = new Object[var3];
  164.          var2 = this.head;
  165.  
  166.          for(int var6 = 0; var2 != null; var2 = var2.next) {
  167.             if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  168.                var4[var6++] = var2.getMedia();
  169.             }
  170.          }
  171.  
  172.          return var4;
  173.       }
  174.    }
  175.  
  176.    public void waitForID(int var1) throws InterruptedException {
  177.       this.waitForID(var1, 0L);
  178.    }
  179.  
  180.    public synchronized boolean waitForID(int var1, long var2) throws InterruptedException {
  181.       long var4 = System.currentTimeMillis() + var2;
  182.       boolean var6 = true;
  183.  
  184.       while(true) {
  185.          int var7 = this.statusID(var1, var6);
  186.          if ((var7 & 1) == 0) {
  187.             if (var7 != 8) {
  188.                return false;
  189.             }
  190.  
  191.             return true;
  192.          }
  193.  
  194.          var6 = false;
  195.          long var8;
  196.          if (var2 == 0L) {
  197.             var8 = 0L;
  198.          } else {
  199.             var8 = var4 - System.currentTimeMillis();
  200.             if (var8 <= 0L) {
  201.                return false;
  202.             }
  203.          }
  204.  
  205.          this.wait(var8);
  206.       }
  207.    }
  208.  
  209.    public int statusID(int var1, boolean var2) {
  210.       MediaEntry var3 = this.head;
  211.  
  212.       int var4;
  213.       for(var4 = 0; var3 != null; var3 = var3.next) {
  214.          if (var3.getID() == var1) {
  215.             var4 |= var3.getStatus(var2);
  216.          }
  217.       }
  218.  
  219.       return var4;
  220.    }
  221.  
  222.    synchronized void setDone() {
  223.       this.notifyAll();
  224.    }
  225. }
  226.